package com.yonyou.cyxdms.sysAuth.service.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.yonyou.cyx.framework.bean.dto.base.BaseDTO;
import com.yonyou.cyx.function.utils.bean.BeanMapperUtil;
import com.yonyou.cyxdms.framework.bean.entity.base.DMSBasePO;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 维修站信息
 * </p>
 *
 * @author quankk
 * @since 2019-08-26
 */
@TableName("tm_asc_info")
public class AscInfoPO extends DMSBasePO<AscInfoPO> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "ASC_ID", type = IdType.AUTO)
    private Integer ascId;
    /**
     * 本身所在app_id
     */
    @TableField("APP_ID")
    private String appId;
    /**
     * 本身所在company_id
     */
    @TableField("COMPANY_ID")
    private Integer companyId;
    /**
     * 销售公司Company_id
     */
    @TableField("FACTORY_COMPANY_ID")
    private Integer factoryCompanyId;
    /**
     * 组织ID
     */
    @TableField("ORG_ID")
    private Integer orgId;
    /**
     * 组织类型
     */
    @TableField("ORG_TYPE")
    private Integer orgType;
    /**
     * 维修站代码
     */
    @TableField("ASC_CODE")
    private String ascCode;
    /**
     * 维修站类型
     */
    @TableField("ASC_RANK")
    private String ascRank;
    /**
     * 组织类型
     */
    @TableField("ASC_NAME")
    private String ascName;
    /**
     * 维修站简称
     */
    @TableField("ASC_SHORT_NAME")
    private String ascShortName;
    /**
     * dcs来源日期
     */
    @TableField("SOURCE_CHANGED_AT")
    private LocalDateTime sourceChangedAt;
    /**
     * 所有者的父组织代码（用于二网使用）
     */
    @TableField("OWNER_PAR_CODE")
    private String ownerParCode;
    @TableField("PARENT_ORG")
    private Integer parentOrg;
    /**
     * 级别
     */
    @TableField("GRADE")
    private String grade;
    /**
     * 开户银行
     */
    @TableField("BANK")
    private String bank;
    /**
     * 银行账号
     */
    @TableField("BANK_ACCOUNT")
    private String bankAccount;
    /**
     * 税号
     */
    @TableField("DUTY_NUMBER")
    private String dutyNumber;
    /**
     * 四位一体编码
     */
    @TableField("UNION_CODE")
    private String unionCode;
    /**
     * 企业性质
     */
    @TableField("PROPERTY")
    private String property;
    /**
     * 省份
     */
    @TableField("PROVINCE")
    private String province;
    /**
     * 城市
     */
    @TableField("CITY")
    private String city;
    /**
     * 县
     */
    @TableField("COUNTY")
    private String county;
    /**
     * 固定资产
     */
    @TableField("FIXED_ASSETS")
    private BigDecimal fixedAssets;
    /**
     * 流动资金
     */
    @TableField("TM_AFTER_SALES_INFOcol")
    private BigDecimal tmAfterSalesInfocol;
    /**
     * 建站日期
     */
    @TableField("CREATED_DATE")
    private LocalDateTime createdDate;
    /**
     * 邮政编码
     */
    @TableField("ZIP_CODE")
    private String zipCode;
    /**
     * 营业状态：1=待开业，2=已开业，3=撤站停业
     */
    @TableField("STATUS")
    private String status;
    /**
     * 邮件
     */
    @TableField("E_MAIL")
    private String eMail;
    /**
     * 开业日期
     */
    @TableField("OPEN_DATE")
    private LocalDateTime openDate;
    /**
     * 上线日期
     */
    @TableField("ONLINE_DATE")
    private LocalDateTime onlineDate;
    /**
     * 上线状态
     */
    @TableField("ONLINE_STATUS")
    private String onlineStatus;
    /**
     * 撤站时间
     */
    @TableField("CLOSE_DATE")
    private LocalDateTime closeDate;
    /**
     * 热线电话
     */
    @TableField("HOT_LINE")
    private String hotLine;
    /**
     * 传真
     */
    @TableField("FAX")
    private String fax;
    /**
     * 预约电话
     */
    @TableField("BOOKING_PHONE")
    private String bookingPhone;
    /**
     * 是否中保
     */
    @TableField("HAVE_ZB")
    private Integer haveZb;
    @TableField("ENGINEER_NUM")
    private BigDecimal engineerNum;
    @TableField("TECHNICIAN_NUM")
    private BigDecimal technicianNum;
    @TableField("ACCOUNTANT_NUM")
    private BigDecimal accountantNum;
    @TableField("SERVICEWORKER_NUM")
    private BigDecimal serviceworkerNum;
    @TableField("EMPLOYEE_NUM")
    private BigDecimal employeeNum;
    @TableField("CHANGE_DATE")
    private LocalDateTime changeDate;
    /**
     * 公司地址
     */
    @TableField("ADDRESS")
    private String address;
    /**
     * 公司主页
     */
    @TableField("COMPANY_HOMEPAGE")
    private String companyHomepage;
    /**
     * 备注
     */
    @TableField("REMARK")
    private String remark;
    /**
     * 索赔单价
     */
    @TableField("CLAIM_PRICE")
    private BigDecimal claimPrice;
    @TableField("VPN_IP")
    private String vpnIp;
    @TableField("ASC_AREA")
    private Integer ascArea;
    /**
     * 1：集中2：分布
     */
    @TableField("ONLINE_FUN")
    private String onlineFun;
    /**
     * 工时成本率
     */
    @TableField("ASC_LABOURHOURATE")
    private BigDecimal ascLabourhourate;
    /**
     * 价格使用类型
     */
    @TableField("PRICE_USE_TYPE")
    private String priceUseType;
    @TableField("TAX_RATE")
    private BigDecimal taxRate;
    /**
     * 部署类型
     */
    @TableField("DISTRIBUTED_TYPE")
    private Integer distributedType;
    /**
     * 权重
     */
    @TableField("MAINT_PRIORITY")
    private String maintPriority;
    /**
     * 快保工位
     */
    @TableField("FAST_PAUL_STATION")
    private String fastPaulStation;
    /**
     * 服务升级推行
     */
    @TableField("SERVICE_UPGRADE")
    private String serviceUpgrade;
    /**
     * VI验收
     */
    @TableField("VI_CHECK")
    private String viCheck;
    @TableField("IS_SEND_STATUS")
    private Integer isSendStatus;
    /**
     * 钣喷干磨工艺
     */
    @TableField("SHEET_SPRAY")
    private String sheetSpray;
    @TableField("ASC_PINYIN")
    private String ascPinyin;
    /**
     * 所属代理商代码
     */
    @TableField("AN_AGENT_CODE")
    private String anAgentCode;
    /**
     * 所属代理商名称
     */
    @TableField("AN_AGENT_NAME")
    private String anAgentName;
    /**
     * 对应经销商代码
     */
    @TableField("AS_DEALER_CODE")
    private String asDealerCode;
    /**
     * 对应经销商名称
     */
    @TableField("AS_DEALER_NAME")
    private String asDealerName;
    /**
     * 硬件类别
     */
    @TableField("HARDWARE_TYPE")
    private String hardwareType;
    /**
     * 是否正式站：正式站、意向站
     */
    @TableField("IS_FORMAL")
    private String isFormal;
    /**
     * 是否可做直发订单
     */
    @TableField("IS_ZF")
    private String isZf;
    @TableField("HAS_SSP")
    private String hasSsp;
    /**
     * 是否授权站
     */
    @TableField("IS_AUTH")
    private Integer isAuth;
    /**
     * 是否寒冷区域
     */
    @TableField("IS_COLD_AREA")
    private Integer isColdArea;
    /**
     * 认证大客户代码
     */
    @TableField("AUTH_CUST_CODE")
    private String authCustCode;
    @TableField("VALID_STATUS")
    private Integer validStatus;
    /**
     * 是否特区
     */
    @TableField("IS_SPECIAL_ZONE")
    private Integer isSpecialZone;
    @TableField("IS_DELETED")
    @Version
    @TableLogic
    private Integer isDeleted;

    public AscInfoPO() {
        super();
    }


    public Integer getAscId() {
        return ascId;
    }

    public void setAscId(Integer ascId) {
        this.ascId = ascId;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public Integer getFactoryCompanyId() {
        return factoryCompanyId;
    }

    public void setFactoryCompanyId(Integer factoryCompanyId) {
        this.factoryCompanyId = factoryCompanyId;
    }

    public Integer getOrgId() {
        return orgId;
    }

    public void setOrgId(Integer orgId) {
        this.orgId = orgId;
    }

    public Integer getOrgType() {
        return orgType;
    }

    public void setOrgType(Integer orgType) {
        this.orgType = orgType;
    }

    public String getAscCode() {
        return ascCode;
    }

    public void setAscCode(String ascCode) {
        this.ascCode = ascCode;
    }

    public String getAscRank() {
        return ascRank;
    }

    public void setAscRank(String ascRank) {
        this.ascRank = ascRank;
    }

    public String getAscName() {
        return ascName;
    }

    public void setAscName(String ascName) {
        this.ascName = ascName;
    }

    public String getAscShortName() {
        return ascShortName;
    }

    public void setAscShortName(String ascShortName) {
        this.ascShortName = ascShortName;
    }

    public LocalDateTime getSourceChangedAt() {
        return sourceChangedAt;
    }

    public void setSourceChangedAt(LocalDateTime sourceChangedAt) {
        this.sourceChangedAt = sourceChangedAt;
    }

    public String getOwnerParCode() {
        return ownerParCode;
    }

    public void setOwnerParCode(String ownerParCode) {
        this.ownerParCode = ownerParCode;
    }

    public Integer getParentOrg() {
        return parentOrg;
    }

    public void setParentOrg(Integer parentOrg) {
        this.parentOrg = parentOrg;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    public String getBank() {
        return bank;
    }

    public void setBank(String bank) {
        this.bank = bank;
    }

    public String getBankAccount() {
        return bankAccount;
    }

    public void setBankAccount(String bankAccount) {
        this.bankAccount = bankAccount;
    }

    public String getDutyNumber() {
        return dutyNumber;
    }

    public void setDutyNumber(String dutyNumber) {
        this.dutyNumber = dutyNumber;
    }

    public String getUnionCode() {
        return unionCode;
    }

    public void setUnionCode(String unionCode) {
        this.unionCode = unionCode;
    }

    public String getProperty() {
        return property;
    }

    public void setProperty(String property) {
        this.property = property;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getCounty() {
        return county;
    }

    public void setCounty(String county) {
        this.county = county;
    }

    public BigDecimal getFixedAssets() {
        return fixedAssets;
    }

    public void setFixedAssets(BigDecimal fixedAssets) {
        this.fixedAssets = fixedAssets;
    }

    public BigDecimal getTmAfterSalesInfocol() {
        return tmAfterSalesInfocol;
    }

    public void setTmAfterSalesInfocol(BigDecimal tmAfterSalesInfocol) {
        this.tmAfterSalesInfocol = tmAfterSalesInfocol;
    }

    public LocalDateTime getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(LocalDateTime createdDate) {
        this.createdDate = createdDate;
    }

    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String geteMail() {
        return eMail;
    }

    public void seteMail(String eMail) {
        this.eMail = eMail;
    }

    public LocalDateTime getOpenDate() {
        return openDate;
    }

    public void setOpenDate(LocalDateTime openDate) {
        this.openDate = openDate;
    }

    public LocalDateTime getOnlineDate() {
        return onlineDate;
    }

    public void setOnlineDate(LocalDateTime onlineDate) {
        this.onlineDate = onlineDate;
    }

    public String getOnlineStatus() {
        return onlineStatus;
    }

    public void setOnlineStatus(String onlineStatus) {
        this.onlineStatus = onlineStatus;
    }

    public LocalDateTime getCloseDate() {
        return closeDate;
    }

    public void setCloseDate(LocalDateTime closeDate) {
        this.closeDate = closeDate;
    }

    public String getHotLine() {
        return hotLine;
    }

    public void setHotLine(String hotLine) {
        this.hotLine = hotLine;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public String getBookingPhone() {
        return bookingPhone;
    }

    public void setBookingPhone(String bookingPhone) {
        this.bookingPhone = bookingPhone;
    }

    public Integer getHaveZb() {
        return haveZb;
    }

    public void setHaveZb(Integer haveZb) {
        this.haveZb = haveZb;
    }

    public BigDecimal getEngineerNum() {
        return engineerNum;
    }

    public void setEngineerNum(BigDecimal engineerNum) {
        this.engineerNum = engineerNum;
    }

    public BigDecimal getTechnicianNum() {
        return technicianNum;
    }

    public void setTechnicianNum(BigDecimal technicianNum) {
        this.technicianNum = technicianNum;
    }

    public BigDecimal getAccountantNum() {
        return accountantNum;
    }

    public void setAccountantNum(BigDecimal accountantNum) {
        this.accountantNum = accountantNum;
    }

    public BigDecimal getServiceworkerNum() {
        return serviceworkerNum;
    }

    public void setServiceworkerNum(BigDecimal serviceworkerNum) {
        this.serviceworkerNum = serviceworkerNum;
    }

    public BigDecimal getEmployeeNum() {
        return employeeNum;
    }

    public void setEmployeeNum(BigDecimal employeeNum) {
        this.employeeNum = employeeNum;
    }

    public LocalDateTime getChangeDate() {
        return changeDate;
    }

    public void setChangeDate(LocalDateTime changeDate) {
        this.changeDate = changeDate;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getCompanyHomepage() {
        return companyHomepage;
    }

    public void setCompanyHomepage(String companyHomepage) {
        this.companyHomepage = companyHomepage;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public BigDecimal getClaimPrice() {
        return claimPrice;
    }

    public void setClaimPrice(BigDecimal claimPrice) {
        this.claimPrice = claimPrice;
    }

    public String getVpnIp() {
        return vpnIp;
    }

    public void setVpnIp(String vpnIp) {
        this.vpnIp = vpnIp;
    }

    public Integer getAscArea() {
        return ascArea;
    }

    public void setAscArea(Integer ascArea) {
        this.ascArea = ascArea;
    }

    public String getOnlineFun() {
        return onlineFun;
    }

    public void setOnlineFun(String onlineFun) {
        this.onlineFun = onlineFun;
    }

    public BigDecimal getAscLabourhourate() {
        return ascLabourhourate;
    }

    public void setAscLabourhourate(BigDecimal ascLabourhourate) {
        this.ascLabourhourate = ascLabourhourate;
    }

    public String getPriceUseType() {
        return priceUseType;
    }

    public void setPriceUseType(String priceUseType) {
        this.priceUseType = priceUseType;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public Integer getDistributedType() {
        return distributedType;
    }

    public void setDistributedType(Integer distributedType) {
        this.distributedType = distributedType;
    }

    public String getMaintPriority() {
        return maintPriority;
    }

    public void setMaintPriority(String maintPriority) {
        this.maintPriority = maintPriority;
    }

    public String getFastPaulStation() {
        return fastPaulStation;
    }

    public void setFastPaulStation(String fastPaulStation) {
        this.fastPaulStation = fastPaulStation;
    }

    public String getServiceUpgrade() {
        return serviceUpgrade;
    }

    public void setServiceUpgrade(String serviceUpgrade) {
        this.serviceUpgrade = serviceUpgrade;
    }

    public String getViCheck() {
        return viCheck;
    }

    public void setViCheck(String viCheck) {
        this.viCheck = viCheck;
    }

    public Integer getIsSendStatus() {
        return isSendStatus;
    }

    public void setIsSendStatus(Integer isSendStatus) {
        this.isSendStatus = isSendStatus;
    }

    public String getSheetSpray() {
        return sheetSpray;
    }

    public void setSheetSpray(String sheetSpray) {
        this.sheetSpray = sheetSpray;
    }

    public String getAscPinyin() {
        return ascPinyin;
    }

    public void setAscPinyin(String ascPinyin) {
        this.ascPinyin = ascPinyin;
    }

    public String getAnAgentCode() {
        return anAgentCode;
    }

    public void setAnAgentCode(String anAgentCode) {
        this.anAgentCode = anAgentCode;
    }

    public String getAnAgentName() {
        return anAgentName;
    }

    public void setAnAgentName(String anAgentName) {
        this.anAgentName = anAgentName;
    }

    public String getAsDealerCode() {
        return asDealerCode;
    }

    public void setAsDealerCode(String asDealerCode) {
        this.asDealerCode = asDealerCode;
    }

    public String getAsDealerName() {
        return asDealerName;
    }

    public void setAsDealerName(String asDealerName) {
        this.asDealerName = asDealerName;
    }

    public String getHardwareType() {
        return hardwareType;
    }

    public void setHardwareType(String hardwareType) {
        this.hardwareType = hardwareType;
    }

    public String getIsFormal() {
        return isFormal;
    }

    public void setIsFormal(String isFormal) {
        this.isFormal = isFormal;
    }

    public String getIsZf() {
        return isZf;
    }

    public void setIsZf(String isZf) {
        this.isZf = isZf;
    }

    public String getHasSsp() {
        return hasSsp;
    }

    public void setHasSsp(String hasSsp) {
        this.hasSsp = hasSsp;
    }

    public Integer getIsAuth() {
        return isAuth;
    }

    public void setIsAuth(Integer isAuth) {
        this.isAuth = isAuth;
    }

    public Integer getIsColdArea() {
        return isColdArea;
    }

    public void setIsColdArea(Integer isColdArea) {
        this.isColdArea = isColdArea;
    }

    public String getAuthCustCode() {
        return authCustCode;
    }

    public void setAuthCustCode(String authCustCode) {
        this.authCustCode = authCustCode;
    }

    public Integer getValidStatus() {
        return validStatus;
    }

    public void setValidStatus(Integer validStatus) {
        this.validStatus = validStatus;
    }

    public Integer getIsSpecialZone() {
        return isSpecialZone;
    }

    public void setIsSpecialZone(Integer isSpecialZone) {
        this.isSpecialZone = isSpecialZone;
    }

    @Override
    public Integer getIsDeleted() {
        return isDeleted;
    }

    @Override
    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    @Override
    protected Serializable pkVal() {
        return this.ascId;
    }

    @Override
    public String toString() {
        return "AscInfoPO{" +
                "ascId=" + ascId +
                ", appId=" + appId +
                ", companyId=" + companyId +
                ", factoryCompanyId=" + factoryCompanyId +
                ", orgId=" + orgId +
                ", orgType=" + orgType +
                ", ascCode='" + ascCode + '\'' +
                ", ascRank='" + ascRank + '\'' +
                ", ascName='" + ascName + '\'' +
                ", ascShortName='" + ascShortName + '\'' +
                ", sourceChangedAt=" + sourceChangedAt +
                ", ownerParCode='" + ownerParCode + '\'' +
                ", parentOrg=" + parentOrg +
                ", grade='" + grade + '\'' +
                ", bank='" + bank + '\'' +
                ", bankAccount='" + bankAccount + '\'' +
                ", dutyNumber='" + dutyNumber + '\'' +
                ", unionCode='" + unionCode + '\'' +
                ", property='" + property + '\'' +
                ", province='" + province + '\'' +
                ", city='" + city + '\'' +
                ", county='" + county + '\'' +
                ", fixedAssets=" + fixedAssets +
                ", tmAfterSalesInfocol=" + tmAfterSalesInfocol +
                ", createdDate=" + createdDate +
                ", zipCode='" + zipCode + '\'' +
                ", status='" + status + '\'' +
                ", eMail='" + eMail + '\'' +
                ", openDate=" + openDate +
                ", onlineDate=" + onlineDate +
                ", onlineStatus='" + onlineStatus + '\'' +
                ", closeDate=" + closeDate +
                ", hotLine='" + hotLine + '\'' +
                ", fax='" + fax + '\'' +
                ", bookingPhone='" + bookingPhone + '\'' +
                ", haveZb=" + haveZb +
                ", engineerNum=" + engineerNum +
                ", technicianNum=" + technicianNum +
                ", accountantNum=" + accountantNum +
                ", serviceworkerNum=" + serviceworkerNum +
                ", employeeNum=" + employeeNum +
                ", changeDate=" + changeDate +
                ", address='" + address + '\'' +
                ", companyHomepage='" + companyHomepage + '\'' +
                ", remark='" + remark + '\'' +
                ", claimPrice=" + claimPrice +
                ", vpnIp='" + vpnIp + '\'' +
                ", ascArea=" + ascArea +
                ", onlineFun='" + onlineFun + '\'' +
                ", ascLabourhourate=" + ascLabourhourate +
                ", priceUseType='" + priceUseType + '\'' +
                ", taxRate=" + taxRate +
                ", distributedType=" + distributedType +
                ", maintPriority='" + maintPriority + '\'' +
                ", fastPaulStation='" + fastPaulStation + '\'' +
                ", serviceUpgrade='" + serviceUpgrade + '\'' +
                ", viCheck='" + viCheck + '\'' +
                ", isSendStatus=" + isSendStatus +
                ", sheetSpray='" + sheetSpray + '\'' +
                ", ascPinyin='" + ascPinyin + '\'' +
                ", anAgentCode='" + anAgentCode + '\'' +
                ", anAgentName='" + anAgentName + '\'' +
                ", asDealerCode='" + asDealerCode + '\'' +
                ", asDealerName='" + asDealerName + '\'' +
                ", hardwareType='" + hardwareType + '\'' +
                ", isFormal='" + isFormal + '\'' +
                ", isZf='" + isZf + '\'' +
                ", hasSsp='" + hasSsp + '\'' +
                ", isAuth=" + isAuth +
                ", isColdArea=" + isColdArea +
                ", authCustCode='" + authCustCode + '\'' +
                ", validStatus=" + validStatus +
                ", isSpecialZone=" + isSpecialZone +
                ", isDeleted=" + isDeleted +
                '}';
    }


    /**
     * 将PO 信息转化为DTO
     *
     * @param dto 需要进行转换的dto
     * @author quankk
     * @since 2018/7/22 0022
     */
    protected <T extends BaseDTO> void transDtoToPo(T dto) {
        BeanMapperUtil.copyProperties(this, dto, "ascId");
    }


}
